package org.devocean.groupbuying.service;

import java.util.List;

import org.devocean.groupbuying.domain.PurchaseItem;
import org.devocean.groupbuying.domain.SerialKey;
import org.devocean.groupbuying.domain.Voucher;

public interface VoucherService {

	Voucher getVoucherById(Integer id);

	Voucher addOrUpdateVoucher(Voucher voucher);

	void removeVoucher(Integer id);
	
	void removeSerial(Integer id);

	long countVouchers();

	List<Voucher> getAllVouchers();

	SerialKey getValidSerialKey(Integer VoucherID);
	
	Voucher getVoucherByDiscountID(Integer DiscountID);

	void associateVoucher(PurchaseItem purchaseItem);

	void provideVoucher(PurchaseItem purchaseItem);

}
